home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / var / lib / dpkg / info / popularity-contest.postinst < prev    next >
Text File  |  2008-10-20  |  3KB  |  120 lines

  1. #!/bin/sh
  2.  
  3. # Load debconf variables
  4. . /usr/share/debconf/confmodule
  5.  
  6. conffile=/etc/popularity-contest.conf
  7.  
  8. set -e
  9.  
  10. if [ -e $conffile ] ; then
  11.     # Fetch current values.
  12.     . $conffile
  13. fi
  14.  
  15. # Get this setting from debconf.  It was set based on the content of
  16. # /etc/popularity-contest.conf in the 'config' script, so it should be
  17. # safe to ignore the value fetched by loading the file above.  This
  18. # should allow for using debconf to reconfigure the package.
  19. db_get popularity-contest/participate || true
  20. if [ "$RET" = "yes" ] || [ "$RET" = "YES" ] || [ "$RET" = "true" ]; then
  21.     PARTICIPATE="yes"
  22. else
  23.     PARTICIPATE="no"
  24. fi
  25.  
  26. # The md5 sum of an empty file
  27. EMPTYID="d41d8cd98f00b204e9800998ecf8427e"
  28.  
  29. generate_id() {
  30.         if [ -x /usr/bin/uuidgen ] ; then
  31.                 MY_HOSTID=`uuidgen | tr -d -`
  32.         else
  33.             MY_HOSTID=`dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5sum | sed 's/  -//'''`
  34.         fi
  35. }
  36.  
  37. generate_conffile() {
  38.         generate_id
  39.     cat <<-EOF >$conffile
  40.         # Config file for Debian's popularity-contest package.
  41.         #
  42.         # To change this file, use:
  43.         #        dpkg-reconfigure popularity-contest
  44.         #
  45.         # You can also edit it by hand, if you so choose.
  46.         #
  47.         # See /usr/share/popularity-contest/default.conf for more info
  48.         # on the options.
  49.         
  50.         MY_HOSTID="$MY_HOSTID"
  51.         PARTICIPATE="$PARTICIPATE"
  52.         USEHTTP="yes"
  53.     EOF
  54.  
  55.     # preseeding is only allowed on first time install
  56.     db_get popularity-contest/submiturls || true
  57.     if [ -n "$RET" ] ; then
  58.         echo "SUBMITURLS=\"$RET\"" >> $conffile
  59.     fi
  60.  
  61.     # Make sure user nobody can read the file.
  62.     chmod a+r $conffile
  63. }
  64.  
  65. case "$1" in
  66.     configure)
  67.     if [ ! -e $conffile ]; then
  68.         generate_conffile
  69.     else
  70.             OLDHOSTID="$MY_HOSTID";
  71.  
  72.         # generate a new UUID for older installs
  73.         if dpkg --compare-versions "$2" lt "1.33ubuntu2"; then
  74.         generate_id
  75.         fi
  76.  
  77.             case $MY_HOSTID in
  78.             # Workaround for bug #237874 triggered on hurd.  The
  79.             # problem was fixed in version 1.15, 2004-03-20.
  80.  
  81.               $EMPTYID) generate_id;;
  82.             # Workaround for bug #240603 triggered by md5sums change
  83.             # of behaviour with stdin. version 1.17, 2004-04-12.
  84.               *-)  MY_HOSTID="${MY_HOSTID%  -}";;
  85.             esac;
  86.         # Replace only if the content changed, to avoid changing the
  87.         # config file date when no change was done.
  88.  
  89.         # Commenting out the obsolete addresses, to use the
  90.         # default config from /usr/share/ on hosts where
  91.         # the old default was unchanged.  Replace the "empty" id.
  92.  
  93.         sedopts=" \
  94.         s/^PARTICIPATE=.*$/PARTICIPATE=\"$PARTICIPATE\"/;   \
  95.         s/^\(MAILTO=\"erich-survey@debian.org\"\)$/#\1/;    \
  96.         s/^\(MAILTO=\"apenwarr-survey@debian.org\"\)$/#\1/; \
  97.         s/^\(MAILTO=\"survey@popcon.debian.org\"\)$/#\1/;   \
  98.                 "
  99.             if [ "$OLDHOSTID" != "$MY_HOSTID" ]; then
  100.                 sedopts="$sedopts \
  101.                 s/^MY_HOSTID=\"\\?$OLDHOSTID\"\\?/MY_HOSTID=\"$MY_HOSTID\"/; \
  102.         "
  103.             fi
  104.  
  105.         if sed "$sedopts" < $conffile > $conffile.new &&
  106.         ! cmp $conffile $conffile.new > /dev/null; then
  107.         mv $conffile.new $conffile
  108.         # Make sure user nobody can read the file.
  109.         chmod a+r $conffile
  110.         else
  111.         rm $conffile.new
  112.         fi
  113.     fi
  114.     ;;
  115.     *)
  116.     ;;
  117. esac
  118.  
  119.  
  120.